package cn.com.dhcc.ddi.task.service;

import java.util.Set;

import cn.com.dhcc.app.core.exception.DaoException;
import cn.com.dhcc.app.pub.CM;
import cn.com.dhcc.ddi.task.service.extract.EDataSourceDBAbstract;
import cn.com.dhcc.ddi.task.service.extract.EDataSourceInterface;
import cn.com.dhcc.ddi.task.service.extract.impl.EDataSourceMysqlImpl;
import cn.com.dhcc.ddi.task.service.transform.MapHandler;
import cn.com.dhcc.ddi.task.service.transform.MapOrder;
import cn.com.dhcc.ddi.task.vo.Task;

public class TaskExecuter {

	//以oracle抽取数据并执行到mysq数据源为例
	public static void main(String[] args) throws DaoException {
//		//根据任务获取当前任务关联的映射，并从中获取原始数据源和目的数据源元数据
//		String dataSourceMeteData_json_from = "";
//		String dataSourceMeteData_json_to = "";
//		//根据数据源类型获取不同的数据源抽取器。
//
//		//通过数据源code获取对应数据抽取实现类
//		String code = "1";
//		Class<? extends EDataSourceInterface> handlerClass = DATASOURCE.find(code).getHandler();
//		EDataSourceInterface eFrom = CM.getBean(handlerClass);
//
////		EDataSourceDBInterface eFrom = new EDataSourceOracleImpl();
//		//------方法1：抽取并映射
//		//获取映射
//		Set<MapOrder> mapOrders = null;
//		//ET
//		DataSet datasetsAfterMapping = eFrom.extractData(dataSourceMeteData_json_from,mapOrders);
//		//------方法2：抽取
//		Task task = null;
//		//E
//		String datasets_raws = eFrom.extractData(task,"");
//		//映射
////		datasetsAfterMapping =  MapHandler.executeMapOrders(datasets_raws, mapOrders);
//		//L 执行到mysql
//		EDataSourceDBAbstract eTo = new EDataSourceMysqlImpl();
//		Result result = eTo.loadData(dataSourceMeteData_json_to, datasetsAfterMapping);
		//记录日志
	}
}
